package com.thinta.wind.ui.login

import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.thinta.wind.base.BaseModel
import com.thinta.wind.base.ViewModelFactory
import com.thinta.wind.base.safetyLaunch
import com.thinta.wind.entity.User
import com.thinta.wind.entity.UserRes
import kotlinx.coroutines.launch
import java.lang.Exception

/*********************************************************
 * 版权信息：2021/6/21 14:22北京振中电子技术有限公司版权所有<p>
 * 创建作者：Wind<p>
 * 创建日期：2021/6/21 14:22<p>
 * *******************************************************<p>
 * 更新历史：    作者      日期      更新摘要<p>
 * <p>
 * *******************************************************<p>
 * 类功能说明：<p>
 */
class LoginViewModel(private val repository: LoginRepository) : BaseModel() {

    var userData : MutableLiveData<User>  = MutableLiveData()
    var otherData : MutableLiveData<HashMap<String, Any>> = MutableLiveData()

    fun login(username: String, pwd: String){
        viewModelScope.safetyLaunch {
            try {
                userData.value = repository.login(username, pwd)
            }catch (e : Exception){
                // 登录失败
                Log.e("TAT", e.message + "")
            }
        }
    }

}

class LoginModelFactory(private val repository: LoginRepository) : ViewModelFactory() {

    @Suppress("UNCHECKED_CAST")
    override fun <T : ViewModel?> create(modelClass: Class<T>): T = LoginViewModel(repository) as T

}